Skip to content

feat(vibenet): account demo on Keystore-free EIP-8130 (EOA + delegation) - #177

Merged
chunter-cb merged 6 commits into
mainfrom
feat/aa-eoa-no-keystore
Oct 2, 2026
Merged

chunter-cb merged 6 commits into
mainfrom
feat/aa-eoa-no-keystore

Conversation

@chunter-cb

@chunter-cb chunter-cb commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

The vibenet devnet now runs EIP-8130 at Everest with the Keystore off, and the call wire gained a per-call value. The old vendor/aa bundle encoded calls as [to, data] and built Keystore-only flows, so every 8130 send from the demos failed to decode.

What changed

  • vendor/aa: rebuilt from viem feat/aa-tx-split (chunter-cb/viem@1c72469), core eip8130 + eip8168 only, straight from TS sources (no viem build step). Hand-written index.d.ts rewritten to match; every declared name exists in the bundle.
  • Account engine: accounts are K1 EOAs with a browser-generated key. Sends compose payer payment → phase 0 → phase 1, optional nonce-free mode, and self-pay / free grant / USDV via the ERC-8168 payer. USDV amount uses the offer's WAD rate at the signed gas and fee.
  • UI: Create (new key, or reuse an unused one), Transact with payer rejection retries, and a slimmer explorer owned-account view (Overview / Activity). The first feature card is now "Superpowered EOAs".

Removed for now

Keystore features and code delegation will come back later in a different form; the prior implementation is on main at cd24bff.

  • Keystore-only: session keys and policies, owner management, sub-accounts, P-256 / passkey signers, smart accounts and address derivation, config-sequence recovery, the apps directory, and the 4337 / Base Sepolia path. Stored records of those are dropped on load.
  • EOA code delegation: the Delegate Code control, the Code Delegation card and explorer section, and the delegation gas term. Stored delegate activity is shown as a regular transaction.
  • Private-key import: new accounts always get a browser-generated key.

B20, Validity, and Race the Agent compile unchanged against the new engine.

Testing

  • npm run typecheck, npm run lint (0 errors), npm test, next build.
  • Against a local vibenet (base chunter/payer-service, Everest at genesis, no Zenith) with base/vibenet#68:
    • Account demo: create an account (faucet-funded), send a sponsored transaction (free grant, landed in ~400 ms), open it in the explorer.
    • Payer, each sending 0.001 ETH in a call: free grant via payer_sendTransaction, USDV via payer_sendTransaction, USDV via payer_signTransaction with client broadcast, and an underpaid send rejected with PAYMENT_INSUFFICIENT + requote.
  • Not yet run against a live devnet: B20's browser payer co-signing.

Screenshots

Local vibenet devnet.

Account demo Create account
Account demo Create account
Review a sponsored send Landed
Review Landed

Explorer, sponsored EIP-8130 transaction:

Explorer tx

Pairs with base/vibenet#68 (payer + devnet config).

…plit

Bundle straight from the viem TypeScript sources instead of the stale _esm
build, export only what the app imports, and rewrite index.d.ts to the
EOA + delegation + ERC-8168 surface (no Keystore, WebAuthn or 4337).
Accounts are secp256k1 EOAs. The engine composes phased calls with an
optional delegation change, nonce-free sends and an ERC-8168 payer (token
payment priced from the offer rate), and reads the current delegation from
eth_getCode. Legacy Keystore-era records are dropped on load.
Create generates or imports a K1 key; Transact adds a Delegate Code control,
a nonce-free option and payer rejection recovery (requote, min gas, USDV
fallback). Removes session keys, owners, sub-accounts, passkeys and the apps
directory; the explorer account view shows Overview / Delegation / Activity.
@vercel

vercel Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
omni-ui Ready Ready Preview Oct 2, 2026 4:32pm UTC

Request Review

@cb-heimdall

cb-heimdall commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

✅ Heimdall Review Status

Requirement Status More Info
Reviews ✅ 1/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

New accounts always get a browser-generated key (or reuse an unused one).
The lone-option Key picker is hidden when there is nothing to reuse.
@chunter-cb
chunter-cb marked this pull request as ready for review October 2, 2026 16:31
@chunter-cb
chunter-cb added this pull request to the merge queue Oct 2, 2026
Merged via the queue into main with commit 1888b88 Oct 2, 2026
13 checks passed
@chunter-cb
chunter-cb deleted the feat/aa-eoa-no-keystore branch October 2, 2026 17:54

This branch was successfully deployed

1 active deployment
Preview — 898da315 Deployed Oct 2, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants